package com.ibm.cloud.banking.media.repository;


import com.ibm.cloud.banking.media.entity.MediaCardInfo;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface IMediaCardInfoMapper {
    int deleteByPrimaryKey(Long id);

    int insert(MediaCardInfo record);

    int initCard(@Param("cardNo") String cardNo, @Param("password") String password);

    int insertSelective(MediaCardInfo record);

    MediaCardInfo selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(MediaCardInfo record);

    int updateByPrimaryKey(MediaCardInfo record);

    Integer allocateMediaCard(MediaCardInfo cardInfo);

    MediaCardInfo getMediaCardByCardNo(@Param("cardNo") String cardNo);

    void resetPasswordErrorTimes(@Param("cardNo") String cardNo);

    void updatePasswordErrorTimes(@Param("cardNo") String cardNo);

    void updateCardStatus(@Param("cardNo") String cardNo, String preStatus, String nextStatus);

    MediaCardInfo getByCardNoForUpdate(@Param("cardNo") String cardNo);

    void allocateMediaCardRefund(MediaCardInfo cardInfo);
}